package com.xuecheng.base.model;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class Result<T> {
    // 状态码
    private Integer code;
    // 提示信息
    private String message;
    // 泛型数据
    private T result;

    // 成功时的构造方法
    public Result(T result) {
        this.code = 200; // 默认成功状态码
        this.message = "success";
        this.result = result;
    }

    // 失败时的构造方法
    public Result(Integer code, String message) {
        this.code = code;
        this.message = message;
        this.result = null;
    }

    // 静态方法，用于快速创建成功结果
    public static <T> Result<T> success(T result) {
        return new Result<>(result);
    }

    // 静态方法，用于快速创建失败结果
    public static <T> Result<T> fail(Integer code, String message) {
        return new Result<>(code, message);
    }
}
